library(geepack)
library(janitor)
library(MESS)
library(plm) #necess�rio para GEE
library(rsq)
library(stargazer)
library(tidyverse)

Coalescencia <- read.csv("Coalescencia.csv", header = TRUE, sep = ";")
Coalescencia1 <- plm.data(Coalescencia, index=c("Pais", "Ano"))
Coalescencia <- Coalescencia %>% janitor::clean_names()
Coalescencia1 <- Coalescencia1 %>% janitor::clean_names()

##Tabela 3
Fit1 <- lm(ca_rose ~ tppca + forca_do_presidente + forca_do_legislativo +
             dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

Fit2 <-lm(cb_rose ~ tppcb + forca_do_presidente + forca_do_legislativo + 
            dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

Fit3 <- lm(ca_gallagher ~ tppca + forca_do_presidente + forca_do_legislativo + 
             dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

Fit4 <- lm(cb_gallagher ~ tppcb + forca_do_presidente + forca_do_legislativo +
             dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

stargazer(Fit1, Fit2, Fit3, Fit4, type = "html", 
          covariate.labels = c("TPPCA", "TPPCB", "For�a do Presidente", "For�a do Legislativo", 
                               "Domin�ncia do Poder Executivo", "Pr�ximas Elei��es", "Argentina", "Brasil", "Chile", "Col�mbia", "Uruguai"), 
          dep.var.labels = c("CRCA","CRCB", "CGCA", "CGCB"), digits = 2, digits.extra = 2)

##Tabela 4
Fit5 <- lm(diferenca_rose ~ lagged_rose + tppca + tppcb + forca_do_presidente + 
             forca_do_legislativo + dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

Fit6 <- lm(diferenca_gallagher ~ lagged_gallagher + tppca + tppcb + forca_do_presidente +
             forca_do_legislativo + dominancia_do_poder_executivo+ proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

stargazer(Fit5, Fit6, type = "html", 
          covariate.labels = c("Lagged Rose", "Lagged Gallagher", "TPPCA", "TPPCB", "For�a do Presidente", "For�a do Legislativo",
                               "Domin�ncia do Executivo", "Pr�ximas elei��es", "Constante"), 
          dep.var.labels = c("Dif. Coalesc�ncia Rose", "Dif. Coalesc�ncia Gallagher"), omit = "factor")

## Ap�ndice (OLS)
Fit1_alt <- lm(ca_rose ~ tppca + forca_do_presidente + forca_do_legislativo + 
                 dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia)

Fit2_alt <- lm(cb_rose ~ tppcb + forca_do_presidente + forca_do_legislativo +
                 dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia)


Fit3_alt <- lm(ca_gallagher ~ tppca + forca_do_presidente + forca_do_legislativo +
                 dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia)

Fit4_alt <- lm(cb_gallagher ~ tppcb + forca_do_presidente + forca_do_legislativo +
                 dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia)


stargazer(Fit1_alt, Fit2_alt, Fit3_alt, Fit4_alt, type = "html", 
          covariate.labels = c("TPPCA", "TPPCB", "For�a do Presidente", "For�a do Legislativo", "Domin�ncia do Poder Executivo", "Pr�ximas elei��es", "Constante"), 
          dep.var.labels = c("CRCA","CRCB", "CGCA", "CGCB"), digits = 2, digits.extra = 2)

## Ap�ndice (GEE)

Fit5_alt <-geeglm(ca_rose ~ tppca + forca_do_presidente + forca_do_legislativo + 
                dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia1, family = gaussian, id= pais, corstr = "exchangeable") 

Fit6_alt <-geeglm(cb_rose ~ tppcb + forca_do_presidente + forca_do_legislativo +
                     dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia1, family = gaussian, id= pais, corstr = "exchangeable") 

Fit7_alt <-geeglm(ca_gallagher ~ tppca + forca_do_presidente + forca_do_legislativo +
                     dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia1, family = gaussian, id= pais, corstr = "exchangeable") 

Fit8_alt <-geeglm(cb_gallagher ~ tppcb + forca_do_presidente + forca_do_legislativo +
                     dominancia_do_poder_executivo + proximas_eleicoes, data = Coalescencia1, family = gaussian, id= pais, corstr = "exchangeable") 

rsq(Fit5_alt)
rsq(Fit6_alt)
rsq(Fit7_alt)
rsq(Fit8_alt)


##Ap�ndice - Tabela 6
Fit9_alt <-lm(ca_rose ~ tppca + poder_de_decreto_presidencial + poder_de_veto_presidencial + forca_do_legislativo +
                dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)


Fit10_alt <-lm(cb_rose ~ tppcb + poder_de_decreto_presidencial + poder_de_veto_presidencial + forca_do_legislativo + 
                 +               dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

Fit11_alt <- lm(ca_gallagher ~ tppca +  poder_de_decreto_presidencial + poder_de_veto_presidencial + forca_do_legislativo + 
                  +                dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

Fit12_alt <- lm(cb_gallagher ~ tppcb + poder_de_decreto_presidencial + poder_de_veto_presidencial + forca_do_legislativo +
                  +                dominancia_do_poder_executivo + proximas_eleicoes + factor(pais) - 1, data = Coalescencia1)

stargazer(Fit9_alt, Fit10_alt, Fit11_alt, Fit12_alt, type = "html",
          covariate.labels = c("TPPCA", "TPPCB", "Poder de Decreto", "Poder de Veto", "For�a do Legislativo", 
                               "Domin�ncia do Poder Executivo", "Pr�ximas elei��es"), omit = "factor", 
          dep.var.labels = c("CRCA","CRCB", "CGCA", "CGCB"), digits = 2, digits.extra = 2)



## Visualiza��o da coalesc�ncia ao longo dos anos


teste <- Coalescencia %>% mutate(teste1 = fct_reorder(governo, ano)) %>%
                          group_by(pais, ano, ca_rose, tppca, forca_do_presidente, forca_do_legislativo,
                                   dominancia_do_poder_executivo, proximas_eleicoes, teste1) %>%
                          summarise(n = n()) %>%
                          ungroup() %>%
                          arrange(pais, ano) %>%
                          group_by(pais) %>%
                          mutate(sss = cumsum(n))

teste  %>% ggplot(aes(sss, ca_rose)) +
           geom_line(size = 1.3, colour = "black") +
           facet_wrap(~pais) 

